/********************************
功  能：按键调整不同窗口的参数 P1 - P4 四个窗口
编程人：ZZT
版  本：V3.0
时  间：2023/12/22
**********************************/
//头文件声明
#include <reg51.h>
#include "delay.h" 
#include "display.h"
#include "Key.h"

//全局变量的定义
unsigned char wnd;//窗口变量，初始化为窗口1
unsigned char parm1 = 0;//窗口P1 对应的变量
unsigned char parm2 = 0;//窗口P2 对应的变量
unsigned char parm3 = 0;//窗口P3 对应的变量
unsigned char parm4 = 0;//窗口P4 对应的变量

//函数声明
void dis_Service();//显示的功能函数
void key_Service();//按键的功能函数

/**********************************
函数名：main
功  能：完成程序模块的调用
参  数：无
返回值：无
***********************************/
void main()
{
	unsigned int i;
	//开机界面
	for (i = 0; i < 5000; i++)
	{
		Display();
	}
	while(1)
	{
		dis_Service();
		key_Service();
		Display();
	}
}

/**********************************
函数名：dis_Service
功  能：数码管分屏显示
参  数：无
返回值：无
***********************************/
void dis_Service()
{
	switch(wnd)
		{
			case 0:
				LEDBuff[0] = 20;
				LEDBuff[1] = 1;
				LEDBuff[2] = parm1 / 10;
				LEDBuff[3] = parm1 % 10;
				break;
			case 1:
				LEDBuff[0] = 20;
				LEDBuff[1] = 2;
				LEDBuff[2] = parm2 / 10;
				LEDBuff[3] = parm2 % 10;	
				break;
			case 2:
				LEDBuff[0] = 20;
				LEDBuff[1] = 3;
				LEDBuff[2] = parm3 / 10;
				LEDBuff[3] = parm3 % 10;	
				break;
			case 3:
				LEDBuff[0] = 20;
				LEDBuff[1] = 4;
				LEDBuff[2] = parm4 / 10;
				LEDBuff[3] = parm4 % 10;
				break;
			default:break;
		}
}

/**********************************
函数名：key_Service
功  能：按键实现窗口切换、参数加一减一和清零的
参  数：无
返回值：无
***********************************/
 void key_Service()
 {
	 switch(Key_Scan())
	 {
		case 1:wnd++;if(wnd > 3) wnd = 0;break;//切换窗口
		case 2://窗口变量+1
			switch(wnd)
			{
				case 0:parm1++;if(parm1 > 99) parm1 = 0;break;
				case 1:parm2++;if(parm2 > 99) parm2 = 0;break;
				case 2:parm3++;if(parm3 > 99) parm3 = 0;break;
				case 3:parm4++;if(parm4 > 99) parm4 = 0;break;
				default:break;
			}
			break;
		case 3://窗口变量减一
			switch(wnd)
			{
				case 0:parm1--;if(parm1 > 99) parm1 = 99;break;
				case 1:parm2--;if(parm2 > 99) parm2 = 99;break;
				case 2:parm3--;if(parm3 > 99) parm3 = 99;break;
				case 3:parm4--;if(parm4 > 99) parm4 = 99;break;
				default:break;
			}
			break;
		case 4://清零
			switch(wnd)
			{
				case 0:parm1 = 0;break;
				case 1:parm2 = 0;break;
				case 2:parm3 = 0;break;
				case 3:parm4 = 0;break;
				default:break;
			}
			break;
		default:break;
	 }
 }